Перем ЮнитТест;

#Область ОбработчикиСобытийМодуля

Функция ПолучитьСписокТестов(МенеджерТестирования) Экспорт
	
	ЮнитТест = МенеджерТестирования;

	СписокТестов = Новый Массив;
	СписокТестов.Добавить("ТестКонструктор");
	СписокТестов.Добавить("TestConstructor");
	СписокТестов.Добавить("ТестЗначение");
	СписокТестов.Добавить("ТестЛексическоеЗначение");
	СписокТестов.Добавить("ТестОпределениеПростогоТипа");

	Возврат СписокТестов;

КонецФункции

#КонецОбласти

#Область ОбработчикиТестирования

Процедура ТестКонструктор() Экспорт
	
	Фасет = Новый ФасетОбразцаXS;
	
	ЮнитТест.ПроверитьРавенство(ТипЗнч(Фасет), Тип("ФасетОбразцаXS"));
	ЮнитТест.ПроверитьРавенство(Фасет.ТипКомпоненты, ТипКомпонентыXS.ФасетОбразца);

КонецПроцедуры

Процедура TestConstructor() Экспорт

	Facet = New XSPatternFacet;
	
	ЮнитТест.ПроверитьРавенство(ТипЗнч(Facet), Тип("XSPatternFacet"));
	ЮнитТест.ПроверитьРавенство(Facet.ComponentType, XSComponentType.PatternFacet);

КонецПроцедуры

Процедура ТестЗначение() Экспорт

	Фасет = Новый ФасетОбразцаXS;
	Фасет.Значение = "[0-9]{5}(-[0-9]{4})?";

	ЮнитТест.ПроверитьРавенство(Фасет.Значение, "[0-9]{5}(-[0-9]{4})?");
	ЮнитТест.ПроверитьРавенство(Фасет.ЛексическоеЗначение, "[0-9]{5}(-[0-9]{4})?");

КонецПроцедуры

Процедура ТестЛексическоеЗначение() Экспорт

	Фасет = Новый ФасетОбразцаXS;
	Фасет.ЛексическоеЗначение = "[0-9]{5}(-[0-9]{4})?";

	ЮнитТест.ПроверитьРавенство(Фасет.ЛексическоеЗначение, "[0-9]{5}(-[0-9]{4})?");
	ЮнитТест.ПроверитьРавенство(Фасет.Значение, "[0-9]{5}(-[0-9]{4})?");

КонецПроцедуры

Процедура ТестОпределениеПростогоТипа() Экспорт

	Фасет = Новый ФасетОбразцаXS;
	Фасет.ЛексическоеЗначение = "[0-9]{5}(-[0-9]{4})?";

	ОпределениеТипа = Новый ОпределениеПростогоТипаXS;
	ОпределениеТипа.Вариант = ВариантПростогоТипаXS.Атомарная;
	ОпределениеТипа.Фасеты.Добавить(Фасет);

	ЮнитТест.ПроверитьРавенство(Фасет.Контейнер, ОпределениеТипа);
	ЮнитТест.ПроверитьРавенство(Фасет.ОпределениеПростогоТипа, ОпределениеТипа);

КонецПроцедуры

#КонецОбласти